File Menu (Project Editor and Source Editor)

The standard SNiFF+ CMVC functionality for individual files is available in the File menu. Most functions are available for CVS although many of them can be accomplished more efficiently by using the CVS custom menus. Especially note the small differences in meaning between the File Menu's functions and the CVS custom menu's functions.
Check Out...
Check out a selected file from the Repository. Note that your Current Project must have been initialized ("Initialize current Project/Module") for this command to work. You may select a version to check out and a locking option:
No Lock - the file is checked out read-only.
Concurrent Lock - the file is checked out and

cvs edit is executed to make the file writable. This should be the default function for you to use!
Exclusive Lock - the file is checked out and exclusively locked with cvs admin -l . Note that exclusive locking is NOT recommended with CVS!
The File > Check out... internally uses a cvs update command but deletes the file before sending the command. Therefore no cvs merging can occur, and the whole file is transferred. Therefore, especially when using remote repositories, a cvs update command is more efficient for checking out files.
If you check out an older version than head, a CVS sticky tag for the corresponding version will be set (see the CVS manual on sticky tags).
Check In...
Checks in the selected file(s) to the repository, makes them read-only and notifies CVS that editing has been finished. There are some things to note:

- Before committing, CVS checks the files to be committed: if conflicts are found, a message is printed and the corresponding file is not checked in. Also, CVS will not check in files that have not been changed.
- When multiple files are selected, this command will perform an individual cvs commit for every file. Therefore, when committing multiple files, the cvs commit custom menu commands are to be preferred, especially if CVS is set up to notify an administrator of every commit that is made.The File > Check In... command allows you to specify SNiFF+ Changesets. These are implemented as CVS tags. Note that when check-in is not possible due to a conflict, the changeset will also not be set for the corresponding file.

Because of these reasons, we recommend to use the File > Check In... command only if few files are affected, if you want to assign a changeset and if no conflicts are assumed. Whenever possible, you should use the CVS Module > Commit or CVS > Commit entire Working Environment custom menu commands instead and enter changesets with the CVS > Tag files... custom menu command.
Lock...
Sets an exclusive lock on the given file. Note that this is not recommended because exclusively locked files can still be edited by CVS users but can not be commited!
Unlock...
Removes an exclusive lock.
Delete Version...
This command is not recommended for CVS, because checked-out files of the version to be deleted can still exist.
Replace Description
Change the "file description" of a selected file.
Replace Comment...
Change the comment of a file version currently selected in the History Window.
Update File...
Performs a SNiFF+ Update on the selected file. The most important properties and differences of Update File... to cvs update are as follows:

- Update File... only looks at read-only files. Writable files not be changed. Files will always be checked out completely and never be patched, therefore conflicts cannot occur; changes in read-only files will be overwritten.
- If you are using a shared workspace and Update File... finds the most current version in the SSWE, the local file will be deleted to show the SSWE's file while

cvs update will never delete local files.
So the SNiFF+ Update File and the CVS Update functions complement each other. Note that the SNiFF+ Menu Entry Project/Update Workspace also does a SNiFF+ Update File for all files of all currently selected projects.
Show Differences...
Opens a dialog to select versions of files to compare in the DiffMerge tool. If a version is selected in the History pane, this version will be selected by default; otherwise symolic names (configurations) can be used to select file versions. If the local file is writable, merging will be enabled in the DiffMerge tool.
SNiFF+ Configuration Manager
While most functions of the SNiFF+ Configuration Manager work as usual, there are some differences due to the specific nature of CVS; particularly, you should not set any tags from the Configuration Manager but use the CVS Modules custom menu instead.
Also note that CVS branch tags will not be shown in the configuration manager if the corresponding branches are empty.